
// ****01.泛型****

// enum Sex {
//   Man,
//   Woman,
//   UnKnow,
// }

// interface Person {
//   name: string,
//   sex: Sex,
//   age: number
// }

// function MycreatedPerson(person: Person) {
//   console.log(`我叫${person.name},性别：${person.sex}今年${person.age}岁`);
// }

// MycreatedPerson({ name: '张三', sex: Sex.Man, age: 17 })


// type MyPartial<T> = {
//   [P in keyof T]?: T[P] 
// }
// type PartialedPerson = MyPartial<Person>
// function MycreatedPerson2(person: PartialedPerson):PartialedPerson {
//   console.log(`我叫${person.name},今年${person.age}岁`);
//   return person
// }
// let a = MycreatedPerson2({ name: '李四', age: 17 })
// console.log(a);
